In [4]:
import matplotlib.pyplot as plt  
import csv 
import operator 
import datetime as dt  
import pandas as pd
import numpy as np
import openpyxl


# Import
# ======

# essential libraries
import math
import random
from datetime import timedelta

# storing and anaysis
import numpy as np

# visualization
import seaborn as sns
import plotly.express as px
import plotly.graph_objs as go
import plotly.figure_factory as ff
from plotly.subplots import make_subplots
import calmap
import folium

# color pallette
cnf, dth, rec, act = '#393e46', '#ff2e63', '#21bf73', '#fe9801' 

# converter
from pandas.plotting import register_matplotlib_converters
register_matplotlib_converters()   

# hide warnings
import warnings
warnings.filterwarnings('ignore')

df = pd.read_excel('owid-covid-data.xlsx')
In [1]:
!pip install folium
Requirement already satisfied: folium in c:\users\tj\anaconda3\lib\site-packages (0.10.1)
Requirement already satisfied: numpy in c:\users\tj\anaconda3\lib\site-packages (from folium) (1.18.3)
Requirement already satisfied: branca>=0.3.0 in c:\users\tj\anaconda3\lib\site-packages (from folium) (0.4.0)
Requirement already satisfied: requests in c:\users\tj\anaconda3\lib\site-packages (from folium) (2.23.0)
Requirement already satisfied: jinja2>=2.9 in c:\users\tj\anaconda3\lib\site-packages (from folium) (2.11.1)
Requirement already satisfied: six in c:\users\tj\anaconda3\lib\site-packages (from branca>=0.3.0->folium) (1.14.0)
Requirement already satisfied: certifi>=2017.4.17 in c:\users\tj\anaconda3\lib\site-packages (from requests->folium) (2019.11.28)
Requirement already satisfied: idna<3,>=2.5 in c:\users\tj\anaconda3\lib\site-packages (from requests->folium) (2.8)
Requirement already satisfied: urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 in c:\users\tj\anaconda3\lib\site-packages (from requests->folium) (1.25.8)
Requirement already satisfied: chardet<4,>=3.0.2 in c:\users\tj\anaconda3\lib\site-packages (from requests->folium) (3.0.4)
Requirement already satisfied: MarkupSafe>=0.23 in c:\users\tj\anaconda3\lib\site-packages (from jinja2>=2.9->folium) (1.1.1)
In [2]:
!pip install plotly
Requirement already satisfied: plotly in c:\users\tj\anaconda3\lib\site-packages (4.6.0)
Requirement already satisfied: retrying>=1.3.3 in c:\users\tj\anaconda3\lib\site-packages (from plotly) (1.3.3)
Requirement already satisfied: six in c:\users\tj\anaconda3\lib\site-packages (from plotly) (1.14.0)
In [3]:
!pip install calmap
Requirement already satisfied: calmap in c:\users\tj\anaconda3\lib\site-packages (0.0.7)
Requirement already satisfied: numpy in c:\users\tj\anaconda3\lib\site-packages (from calmap) (1.18.3)
Requirement already satisfied: pandas in c:\users\tj\anaconda3\lib\site-packages (from calmap) (0.25.3)
Requirement already satisfied: matplotlib in c:\users\tj\appdata\roaming\python\python37\site-packages (from calmap) (3.2.1)
Requirement already satisfied: python-dateutil>=2.6.1 in c:\users\tj\anaconda3\lib\site-packages (from pandas->calmap) (2.8.1)
Requirement already satisfied: pytz>=2017.2 in c:\users\tj\anaconda3\lib\site-packages (from pandas->calmap) (2019.3)
Requirement already satisfied: cycler>=0.10 in c:\users\tj\anaconda3\lib\site-packages (from matplotlib->calmap) (0.10.0)
Requirement already satisfied: kiwisolver>=1.0.1 in c:\users\tj\anaconda3\lib\site-packages (from matplotlib->calmap) (1.1.0)
Requirement already satisfied: pyparsing!=2.0.4,!=2.1.2,!=2.1.6,>=2.0.1 in c:\users\tj\anaconda3\lib\site-packages (from matplotlib->calmap) (2.4.6)
Requirement already satisfied: six>=1.5 in c:\users\tj\anaconda3\lib\site-packages (from python-dateutil>=2.6.1->pandas->calmap) (1.14.0)
Requirement already satisfied: setuptools in c:\users\tj\anaconda3\lib\site-packages (from kiwisolver>=1.0.1->matplotlib->calmap) (46.1.3)
In [5]:
df.head()
Out[5]:
iso_code location date total_cases new_cases total_deaths new_deaths total_cases_per_million new_cases_per_million total_deaths_per_million new_deaths_per_million total_tests new_tests total_tests_per_thousand new_tests_per_thousand tests_units
0 ABW Aruba 2020-03-13 2 2 0 0 18.733 18.733 0.0 0.0 NaN NaN NaN NaN NaN
1 ABW Aruba 2020-03-20 4 2 0 0 37.465 18.733 0.0 0.0 NaN NaN NaN NaN NaN
2 ABW Aruba 2020-03-24 12 8 0 0 112.395 74.930 0.0 0.0 NaN NaN NaN NaN NaN
3 ABW Aruba 2020-03-25 17 5 0 0 159.227 46.831 0.0 0.0 NaN NaN NaN NaN NaN
4 ABW Aruba 2020-03-26 19 2 0 0 177.959 18.733 0.0 0.0 NaN NaN NaN NaN NaN
In [6]:
a=df['location']
In [7]:
temp = df.groupby('date')['total_cases', 'total_deaths'].sum().reset_index()
In [8]:
temp.head()
Out[8]:
date total_cases total_deaths
0 2019-12-31 27 0
1 2020-01-01 27 0
2 2020-01-02 27 0
3 2020-01-03 44 0
4 2020-01-04 44 0
In [9]:
temp = temp.melt(id_vars="date", value_vars=['total_cases', 'total_deaths'],
                 var_name='Case', value_name='Count')
temp.head()
Out[9]:
date Case Count
0 2019-12-31 total_cases 27
1 2020-01-01 total_cases 27
2 2020-01-02 total_cases 27
3 2020-01-03 total_cases 44
4 2020-01-04 total_cases 44
In [10]:
fig = px.area(temp, x="date", y="Count", color='Case', height=600,
             title='Cases over time', color_discrete_sequence = [rec, dth, act])
fig.show
Out[10]:
<bound method BaseFigure.show of Figure({
    'data': [{'hovertemplate': 'Case=total_cases<br>date=%{x}<br>Count=%{y}<extra></extra>',
              'legendgroup': 'total_cases',
              'line': {'color': '#21bf73'},
              'mode': 'lines',
              'name': 'total_cases',
              'orientation': 'v',
              'showlegend': True,
              'stackgroup': '1',
              'type': 'scatter',
              'x': array([datetime.datetime(2019, 12, 31, 0, 0),
                          datetime.datetime(2020, 1, 1, 0, 0),
                          datetime.datetime(2020, 1, 2, 0, 0),
                          datetime.datetime(2020, 1, 3, 0, 0),
                          datetime.datetime(2020, 1, 4, 0, 0),
                          datetime.datetime(2020, 1, 5, 0, 0),
                          datetime.datetime(2020, 1, 6, 0, 0),
                          datetime.datetime(2020, 1, 7, 0, 0),
                          datetime.datetime(2020, 1, 8, 0, 0),
                          datetime.datetime(2020, 1, 9, 0, 0),
                          datetime.datetime(2020, 1, 10, 0, 0),
                          datetime.datetime(2020, 1, 11, 0, 0),
                          datetime.datetime(2020, 1, 12, 0, 0),
                          datetime.datetime(2020, 1, 13, 0, 0),
                          datetime.datetime(2020, 1, 14, 0, 0),
                          datetime.datetime(2020, 1, 15, 0, 0),
                          datetime.datetime(2020, 1, 16, 0, 0),
                          datetime.datetime(2020, 1, 17, 0, 0),
                          datetime.datetime(2020, 1, 18, 0, 0),
                          datetime.datetime(2020, 1, 19, 0, 0),
                          datetime.datetime(2020, 1, 20, 0, 0),
                          datetime.datetime(2020, 1, 21, 0, 0),
                          datetime.datetime(2020, 1, 22, 0, 0),
                          datetime.datetime(2020, 1, 23, 0, 0),
                          datetime.datetime(2020, 1, 24, 0, 0),
                          datetime.datetime(2020, 1, 25, 0, 0),
                          datetime.datetime(2020, 1, 26, 0, 0),
                          datetime.datetime(2020, 1, 27, 0, 0),
                          datetime.datetime(2020, 1, 28, 0, 0),
                          datetime.datetime(2020, 1, 29, 0, 0),
                          datetime.datetime(2020, 1, 30, 0, 0),
                          datetime.datetime(2020, 1, 31, 0, 0),
                          datetime.datetime(2020, 2, 1, 0, 0),
                          datetime.datetime(2020, 2, 2, 0, 0),
                          datetime.datetime(2020, 2, 3, 0, 0),
                          datetime.datetime(2020, 2, 4, 0, 0),
                          datetime.datetime(2020, 2, 5, 0, 0),
                          datetime.datetime(2020, 2, 6, 0, 0),
                          datetime.datetime(2020, 2, 7, 0, 0),
                          datetime.datetime(2020, 2, 8, 0, 0),
                          datetime.datetime(2020, 2, 9, 0, 0),
                          datetime.datetime(2020, 2, 10, 0, 0),
                          datetime.datetime(2020, 2, 11, 0, 0),
                          datetime.datetime(2020, 2, 12, 0, 0),
                          datetime.datetime(2020, 2, 13, 0, 0),
                          datetime.datetime(2020, 2, 14, 0, 0),
                          datetime.datetime(2020, 2, 15, 0, 0),
                          datetime.datetime(2020, 2, 16, 0, 0),
                          datetime.datetime(2020, 2, 17, 0, 0),
                          datetime.datetime(2020, 2, 18, 0, 0),
                          datetime.datetime(2020, 2, 19, 0, 0),
                          datetime.datetime(2020, 2, 20, 0, 0),
                          datetime.datetime(2020, 2, 21, 0, 0),
                          datetime.datetime(2020, 2, 22, 0, 0),
                          datetime.datetime(2020, 2, 23, 0, 0),
                          datetime.datetime(2020, 2, 24, 0, 0),
                          datetime.datetime(2020, 2, 25, 0, 0),
                          datetime.datetime(2020, 2, 26, 0, 0),
                          datetime.datetime(2020, 2, 27, 0, 0),
                          datetime.datetime(2020, 2, 28, 0, 0),
                          datetime.datetime(2020, 2, 29, 0, 0),
                          datetime.datetime(2020, 3, 1, 0, 0),
                          datetime.datetime(2020, 3, 2, 0, 0),
                          datetime.datetime(2020, 3, 3, 0, 0),
                          datetime.datetime(2020, 3, 4, 0, 0),
                          datetime.datetime(2020, 3, 5, 0, 0),
                          datetime.datetime(2020, 3, 6, 0, 0),
                          datetime.datetime(2020, 3, 7, 0, 0),
                          datetime.datetime(2020, 3, 8, 0, 0),
                          datetime.datetime(2020, 3, 9, 0, 0),
                          datetime.datetime(2020, 3, 10, 0, 0),
                          datetime.datetime(2020, 3, 11, 0, 0),
                          datetime.datetime(2020, 3, 12, 0, 0),
                          datetime.datetime(2020, 3, 13, 0, 0),
                          datetime.datetime(2020, 3, 14, 0, 0),
                          datetime.datetime(2020, 3, 15, 0, 0),
                          datetime.datetime(2020, 3, 16, 0, 0),
                          datetime.datetime(2020, 3, 17, 0, 0),
                          datetime.datetime(2020, 3, 18, 0, 0),
                          datetime.datetime(2020, 3, 19, 0, 0),
                          datetime.datetime(2020, 3, 20, 0, 0),
                          datetime.datetime(2020, 3, 21, 0, 0),
                          datetime.datetime(2020, 3, 22, 0, 0),
                          datetime.datetime(2020, 3, 23, 0, 0),
                          datetime.datetime(2020, 3, 24, 0, 0),
                          datetime.datetime(2020, 3, 25, 0, 0),
                          datetime.datetime(2020, 3, 26, 0, 0),
                          datetime.datetime(2020, 3, 27, 0, 0),
                          datetime.datetime(2020, 3, 28, 0, 0),
                          datetime.datetime(2020, 3, 29, 0, 0),
                          datetime.datetime(2020, 3, 30, 0, 0),
                          datetime.datetime(2020, 3, 31, 0, 0),
                          datetime.datetime(2020, 4, 1, 0, 0),
                          datetime.datetime(2020, 4, 2, 0, 0),
                          datetime.datetime(2020, 4, 3, 0, 0),
                          datetime.datetime(2020, 4, 4, 0, 0),
                          datetime.datetime(2020, 4, 5, 0, 0),
                          datetime.datetime(2020, 4, 6, 0, 0),
                          datetime.datetime(2020, 4, 7, 0, 0),
                          datetime.datetime(2020, 4, 8, 0, 0),
                          datetime.datetime(2020, 4, 9, 0, 0),
                          datetime.datetime(2020, 4, 10, 0, 0),
                          datetime.datetime(2020, 4, 11, 0, 0),
                          datetime.datetime(2020, 4, 12, 0, 0),
                          datetime.datetime(2020, 4, 13, 0, 0),
                          datetime.datetime(2020, 4, 14, 0, 0),
                          datetime.datetime(2020, 4, 15, 0, 0),
                          datetime.datetime(2020, 4, 16, 0, 0),
                          datetime.datetime(2020, 4, 17, 0, 0),
                          datetime.datetime(2020, 4, 18, 0, 0),
                          datetime.datetime(2020, 4, 19, 0, 0),
                          datetime.datetime(2020, 4, 20, 0, 0),
                          datetime.datetime(2020, 4, 21, 0, 0),
                          datetime.datetime(2020, 4, 22, 0, 0),
                          datetime.datetime(2020, 4, 23, 0, 0)], dtype=object),
              'xaxis': 'x',
              'y': array([     27,      27,      27,      44,      44,      59,      59,      59,
                               59,      59,      59,      59,      59,      60,      60,      61,
                               61,      66,      83,     219,     239,     392,     534,     631,
                              897,    1350,    2023,    2820,    4587,    6067,    7823,    9826,
                            11946,   14554,   17372,   20615,   24512,   28253,   31430,   34869,
                            37488,   40470,   42970,   45003,   60154,   64322,   66882,   68910,
                            70977,   72873,   74649,   75102,   76085,   77170,   78178,   78648,
                            79441,   80304,   81396,   82660,   84498,   86321,   88363,   89927,
                            92176,   94386,   97354,  101207,  104882,  108737,  113161,  117786,
                           124622,  132659,  142328,  153971,  166686,  179378,  194132,  212445,
                           241672,  270410,  304529,  337527,  377261,  416175,  467391,  527133,
                           591098,  656173,  714706,  776422,  850903,  927797, 1005370, 1087125,
                          1173454, 1244901, 1316286, 1391185, 1476092, 1563121, 1652463, 1734168,
                          1806558, 1872941, 1948165, 2029177, 2113513, 2196824, 2280936, 2355082,
                          2432356, 2519743, 2587372], dtype=int64),
              'yaxis': 'y'},
             {'hovertemplate': 'Case=total_deaths<br>date=%{x}<br>Count=%{y}<extra></extra>',
              'legendgroup': 'total_deaths',
              'line': {'color': '#ff2e63'},
              'mode': 'lines',
              'name': 'total_deaths',
              'orientation': 'v',
              'showlegend': True,
              'stackgroup': '1',
              'type': 'scatter',
              'x': array([datetime.datetime(2019, 12, 31, 0, 0),
                          datetime.datetime(2020, 1, 1, 0, 0),
                          datetime.datetime(2020, 1, 2, 0, 0),
                          datetime.datetime(2020, 1, 3, 0, 0),
                          datetime.datetime(2020, 1, 4, 0, 0),
                          datetime.datetime(2020, 1, 5, 0, 0),
                          datetime.datetime(2020, 1, 6, 0, 0),
                          datetime.datetime(2020, 1, 7, 0, 0),
                          datetime.datetime(2020, 1, 8, 0, 0),
                          datetime.datetime(2020, 1, 9, 0, 0),
                          datetime.datetime(2020, 1, 10, 0, 0),
                          datetime.datetime(2020, 1, 11, 0, 0),
                          datetime.datetime(2020, 1, 12, 0, 0),
                          datetime.datetime(2020, 1, 13, 0, 0),
                          datetime.datetime(2020, 1, 14, 0, 0),
                          datetime.datetime(2020, 1, 15, 0, 0),
                          datetime.datetime(2020, 1, 16, 0, 0),
                          datetime.datetime(2020, 1, 17, 0, 0),
                          datetime.datetime(2020, 1, 18, 0, 0),
                          datetime.datetime(2020, 1, 19, 0, 0),
                          datetime.datetime(2020, 1, 20, 0, 0),
                          datetime.datetime(2020, 1, 21, 0, 0),
                          datetime.datetime(2020, 1, 22, 0, 0),
                          datetime.datetime(2020, 1, 23, 0, 0),
                          datetime.datetime(2020, 1, 24, 0, 0),
                          datetime.datetime(2020, 1, 25, 0, 0),
                          datetime.datetime(2020, 1, 26, 0, 0),
                          datetime.datetime(2020, 1, 27, 0, 0),
                          datetime.datetime(2020, 1, 28, 0, 0),
                          datetime.datetime(2020, 1, 29, 0, 0),
                          datetime.datetime(2020, 1, 30, 0, 0),
                          datetime.datetime(2020, 1, 31, 0, 0),
                          datetime.datetime(2020, 2, 1, 0, 0),
                          datetime.datetime(2020, 2, 2, 0, 0),
                          datetime.datetime(2020, 2, 3, 0, 0),
                          datetime.datetime(2020, 2, 4, 0, 0),
                          datetime.datetime(2020, 2, 5, 0, 0),
                          datetime.datetime(2020, 2, 6, 0, 0),
                          datetime.datetime(2020, 2, 7, 0, 0),
                          datetime.datetime(2020, 2, 8, 0, 0),
                          datetime.datetime(2020, 2, 9, 0, 0),
                          datetime.datetime(2020, 2, 10, 0, 0),
                          datetime.datetime(2020, 2, 11, 0, 0),
                          datetime.datetime(2020, 2, 12, 0, 0),
                          datetime.datetime(2020, 2, 13, 0, 0),
                          datetime.datetime(2020, 2, 14, 0, 0),
                          datetime.datetime(2020, 2, 15, 0, 0),
                          datetime.datetime(2020, 2, 16, 0, 0),
                          datetime.datetime(2020, 2, 17, 0, 0),
                          datetime.datetime(2020, 2, 18, 0, 0),
                          datetime.datetime(2020, 2, 19, 0, 0),
                          datetime.datetime(2020, 2, 20, 0, 0),
                          datetime.datetime(2020, 2, 21, 0, 0),
                          datetime.datetime(2020, 2, 22, 0, 0),
                          datetime.datetime(2020, 2, 23, 0, 0),
                          datetime.datetime(2020, 2, 24, 0, 0),
                          datetime.datetime(2020, 2, 25, 0, 0),
                          datetime.datetime(2020, 2, 26, 0, 0),
                          datetime.datetime(2020, 2, 27, 0, 0),
                          datetime.datetime(2020, 2, 28, 0, 0),
                          datetime.datetime(2020, 2, 29, 0, 0),
                          datetime.datetime(2020, 3, 1, 0, 0),
                          datetime.datetime(2020, 3, 2, 0, 0),
                          datetime.datetime(2020, 3, 3, 0, 0),
                          datetime.datetime(2020, 3, 4, 0, 0),
                          datetime.datetime(2020, 3, 5, 0, 0),
                          datetime.datetime(2020, 3, 6, 0, 0),
                          datetime.datetime(2020, 3, 7, 0, 0),
                          datetime.datetime(2020, 3, 8, 0, 0),
                          datetime.datetime(2020, 3, 9, 0, 0),
                          datetime.datetime(2020, 3, 10, 0, 0),
                          datetime.datetime(2020, 3, 11, 0, 0),
                          datetime.datetime(2020, 3, 12, 0, 0),
                          datetime.datetime(2020, 3, 13, 0, 0),
                          datetime.datetime(2020, 3, 14, 0, 0),
                          datetime.datetime(2020, 3, 15, 0, 0),
                          datetime.datetime(2020, 3, 16, 0, 0),
                          datetime.datetime(2020, 3, 17, 0, 0),
                          datetime.datetime(2020, 3, 18, 0, 0),
                          datetime.datetime(2020, 3, 19, 0, 0),
                          datetime.datetime(2020, 3, 20, 0, 0),
                          datetime.datetime(2020, 3, 21, 0, 0),
                          datetime.datetime(2020, 3, 22, 0, 0),
                          datetime.datetime(2020, 3, 23, 0, 0),
                          datetime.datetime(2020, 3, 24, 0, 0),
                          datetime.datetime(2020, 3, 25, 0, 0),
                          datetime.datetime(2020, 3, 26, 0, 0),
                          datetime.datetime(2020, 3, 27, 0, 0),
                          datetime.datetime(2020, 3, 28, 0, 0),
                          datetime.datetime(2020, 3, 29, 0, 0),
                          datetime.datetime(2020, 3, 30, 0, 0),
                          datetime.datetime(2020, 3, 31, 0, 0),
                          datetime.datetime(2020, 4, 1, 0, 0),
                          datetime.datetime(2020, 4, 2, 0, 0),
                          datetime.datetime(2020, 4, 3, 0, 0),
                          datetime.datetime(2020, 4, 4, 0, 0),
                          datetime.datetime(2020, 4, 5, 0, 0),
                          datetime.datetime(2020, 4, 6, 0, 0),
                          datetime.datetime(2020, 4, 7, 0, 0),
                          datetime.datetime(2020, 4, 8, 0, 0),
                          datetime.datetime(2020, 4, 9, 0, 0),
                          datetime.datetime(2020, 4, 10, 0, 0),
                          datetime.datetime(2020, 4, 11, 0, 0),
                          datetime.datetime(2020, 4, 12, 0, 0),
                          datetime.datetime(2020, 4, 13, 0, 0),
                          datetime.datetime(2020, 4, 14, 0, 0),
                          datetime.datetime(2020, 4, 15, 0, 0),
                          datetime.datetime(2020, 4, 16, 0, 0),
                          datetime.datetime(2020, 4, 17, 0, 0),
                          datetime.datetime(2020, 4, 18, 0, 0),
                          datetime.datetime(2020, 4, 19, 0, 0),
                          datetime.datetime(2020, 4, 20, 0, 0),
                          datetime.datetime(2020, 4, 21, 0, 0),
                          datetime.datetime(2020, 4, 22, 0, 0),
                          datetime.datetime(2020, 4, 23, 0, 0)], dtype=object),
              'xaxis': 'x',
              'y': array([     0,      0,      0,      0,      0,      0,      0,      0,      0,
                               0,      0,      1,      1,      1,      1,      2,      2,      2,
                               2,      3,      3,      6,     17,     17,     26,     41,     56,
                              81,    106,    132,    170,    213,    259,    305,    362,    427,
                             493,    565,    638,    724,    813,    910,   1018,   1115,   1370,
                            1383,   1527,   1669,   1775,   1873,   2012,   2126,   2245,   2357,
                            2461,   2616,   2695,   2758,   2796,   2853,   2915,   2973,   3040,
                            3109,   3194,   3274,   3377,   3480,   3578,   3807,   4007,   4285,
                            4610,   4960,   5397,   5752,   6499,   7095,   7884,   8835,   9876,
                           11242,  12942,  14596,  16356,  18558,  20986,  23667,  26986,  30445,
                           33569,  37268,  41897,  46877,  51570,  58173,  64265,  68921,  74058,
                           81469,  87809,  95032, 102081, 108185, 113506, 118850, 125968, 136313,
                          144820, 153083, 159504, 164649, 169844, 176779, 182801], dtype=int64),
              'yaxis': 'y'}],
    'layout': {'height': 600,
               'legend': {'title': {'text': 'Case'}, 'tracegroupgap': 0},
               'template': '...',
               'title': {'text': 'Cases over time'},
               'xaxis': {'anchor': 'y', 'domain': [0.0, 1.0], 'title': {'text': 'date'}},
               'yaxis': {'anchor': 'x', 'domain': [0.0, 1.0], 'title': {'text': 'Count'}}}
})>
In [11]:
day_wise = df.groupby('date')['total_cases', 'total_deaths','new_cases'].sum().reset_index()
In [12]:
day_wise['No. of countries'] = df[df['total_cases']!=0].groupby('date')['location'].unique().apply(len).values

day_wise['total_deaths / total_cases'] = round((day_wise['total_deaths']/day_wise['total_cases'])*100, 2)
In [14]:
cols = ['total_deaths / total_cases']
day_wise[cols] = day_wise[cols].fillna(0)

day_wise.head(50)
Out[14]:
date total_cases total_deaths new_cases No. of countries total_deaths / total_cases
0 2019-12-31 27 0 27 1 0.00
1 2020-01-01 27 0 0 1 0.00
2 2020-01-02 27 0 0 1 0.00
3 2020-01-03 44 0 17 1 0.00
4 2020-01-04 44 0 0 1 0.00
5 2020-01-05 59 0 15 1 0.00
6 2020-01-06 59 0 0 1 0.00
7 2020-01-07 59 0 0 1 0.00
8 2020-01-08 59 0 0 1 0.00
9 2020-01-09 59 0 0 1 0.00
10 2020-01-10 59 0 0 1 0.00
11 2020-01-11 59 1 0 1 1.69
12 2020-01-12 59 1 0 1 1.69
13 2020-01-13 60 1 1 2 1.67
14 2020-01-14 60 1 0 2 1.67
15 2020-01-15 61 2 1 3 3.28
16 2020-01-16 61 2 0 3 3.28
17 2020-01-17 66 2 5 3 3.03
18 2020-01-18 83 2 17 3 2.41
19 2020-01-19 219 3 136 3 1.37
20 2020-01-20 239 3 20 4 1.26
21 2020-01-21 392 6 153 6 1.53
22 2020-01-22 534 17 142 6 3.18
23 2020-01-23 631 17 97 6 2.69
24 2020-01-24 897 26 266 8 2.90
25 2020-01-25 1350 41 453 12 3.04
26 2020-01-26 2023 56 673 13 2.77
27 2020-01-27 2820 81 797 14 2.87
28 2020-01-28 4587 106 1767 17 2.31
29 2020-01-29 6067 132 1480 17 2.18
30 2020-01-30 7823 170 1756 20 2.17
31 2020-01-31 9826 213 2003 22 2.17
32 2020-02-01 11946 259 2120 25 2.17
33 2020-02-02 14554 305 2608 25 2.10
34 2020-02-03 17372 362 2818 25 2.08
35 2020-02-04 20615 427 3243 26 2.07
36 2020-02-05 24512 493 3897 26 2.01
37 2020-02-06 28253 565 3741 26 2.00
38 2020-02-07 31430 638 3177 26 2.03
39 2020-02-08 34869 724 3439 26 2.08
40 2020-02-09 37488 813 2619 26 2.17
41 2020-02-10 40470 910 2982 26 2.25
42 2020-02-11 42970 1018 2500 26 2.37
43 2020-02-12 45003 1115 2033 26 2.48
44 2020-02-13 60154 1370 15151 26 2.28
45 2020-02-14 64322 1383 4168 26 2.15
46 2020-02-15 66882 1527 2560 27 2.28
47 2020-02-16 68910 1669 2028 27 2.42
48 2020-02-17 70977 1775 2067 27 2.50
49 2020-02-18 72873 1873 1896 27 2.57
In [32]:
fig_c = px.bar(day_wise, x="date", y="total_cases", color_discrete_sequence = [act])
fig_d = px.bar(day_wise, x="date", y="total_deaths", color_discrete_sequence = [dth])

fig = make_subplots(rows=1, cols=2, shared_xaxes=False, horizontal_spacing=0.1,
                    subplot_titles=('Confirmed cases', 'Deaths reported'))

fig.add_trace(fig_c['data'][0], row=1, col=1)
fig.add_trace(fig_d['data'][0], row=1, col=2)

fig.show
Out[32]:
<bound method BaseFigure.show of Figure({
    'data': [{'alignmentgroup': 'True',
              'hovertemplate': 'date=%{x}<br>total_cases=%{y}<extra></extra>',
              'legendgroup': '',
              'marker': {'color': '#fe9801'},
              'name': '',
              'offsetgroup': '',
              'orientation': 'v',
              'showlegend': False,
              'textposition': 'auto',
              'type': 'bar',
              'x': array([datetime.datetime(2019, 12, 31, 0, 0),
                          datetime.datetime(2020, 1, 1, 0, 0),
                          datetime.datetime(2020, 1, 2, 0, 0),
                          datetime.datetime(2020, 1, 3, 0, 0),
                          datetime.datetime(2020, 1, 4, 0, 0),
                          datetime.datetime(2020, 1, 5, 0, 0),
                          datetime.datetime(2020, 1, 6, 0, 0),
                          datetime.datetime(2020, 1, 7, 0, 0),
                          datetime.datetime(2020, 1, 8, 0, 0),
                          datetime.datetime(2020, 1, 9, 0, 0),
                          datetime.datetime(2020, 1, 10, 0, 0),
                          datetime.datetime(2020, 1, 11, 0, 0),
                          datetime.datetime(2020, 1, 12, 0, 0),
                          datetime.datetime(2020, 1, 13, 0, 0),
                          datetime.datetime(2020, 1, 14, 0, 0),
                          datetime.datetime(2020, 1, 15, 0, 0),
                          datetime.datetime(2020, 1, 16, 0, 0),
                          datetime.datetime(2020, 1, 17, 0, 0),
                          datetime.datetime(2020, 1, 18, 0, 0),
                          datetime.datetime(2020, 1, 19, 0, 0),
                          datetime.datetime(2020, 1, 20, 0, 0),
                          datetime.datetime(2020, 1, 21, 0, 0),
                          datetime.datetime(2020, 1, 22, 0, 0),
                          datetime.datetime(2020, 1, 23, 0, 0),
                          datetime.datetime(2020, 1, 24, 0, 0),
                          datetime.datetime(2020, 1, 25, 0, 0),
                          datetime.datetime(2020, 1, 26, 0, 0),
                          datetime.datetime(2020, 1, 27, 0, 0),
                          datetime.datetime(2020, 1, 28, 0, 0),
                          datetime.datetime(2020, 1, 29, 0, 0),
                          datetime.datetime(2020, 1, 30, 0, 0),
                          datetime.datetime(2020, 1, 31, 0, 0),
                          datetime.datetime(2020, 2, 1, 0, 0),
                          datetime.datetime(2020, 2, 2, 0, 0),
                          datetime.datetime(2020, 2, 3, 0, 0),
                          datetime.datetime(2020, 2, 4, 0, 0),
                          datetime.datetime(2020, 2, 5, 0, 0),
                          datetime.datetime(2020, 2, 6, 0, 0),
                          datetime.datetime(2020, 2, 7, 0, 0),
                          datetime.datetime(2020, 2, 8, 0, 0),
                          datetime.datetime(2020, 2, 9, 0, 0),
                          datetime.datetime(2020, 2, 10, 0, 0),
                          datetime.datetime(2020, 2, 11, 0, 0),
                          datetime.datetime(2020, 2, 12, 0, 0),
                          datetime.datetime(2020, 2, 13, 0, 0),
                          datetime.datetime(2020, 2, 14, 0, 0),
                          datetime.datetime(2020, 2, 15, 0, 0),
                          datetime.datetime(2020, 2, 16, 0, 0),
                          datetime.datetime(2020, 2, 17, 0, 0),
                          datetime.datetime(2020, 2, 18, 0, 0),
                          datetime.datetime(2020, 2, 19, 0, 0),
                          datetime.datetime(2020, 2, 20, 0, 0),
                          datetime.datetime(2020, 2, 21, 0, 0),
                          datetime.datetime(2020, 2, 22, 0, 0),
                          datetime.datetime(2020, 2, 23, 0, 0),
                          datetime.datetime(2020, 2, 24, 0, 0),
                          datetime.datetime(2020, 2, 25, 0, 0),
                          datetime.datetime(2020, 2, 26, 0, 0),
                          datetime.datetime(2020, 2, 27, 0, 0),
                          datetime.datetime(2020, 2, 28, 0, 0),
                          datetime.datetime(2020, 2, 29, 0, 0),
                          datetime.datetime(2020, 3, 1, 0, 0),
                          datetime.datetime(2020, 3, 2, 0, 0),
                          datetime.datetime(2020, 3, 3, 0, 0),
                          datetime.datetime(2020, 3, 4, 0, 0),
                          datetime.datetime(2020, 3, 5, 0, 0),
                          datetime.datetime(2020, 3, 6, 0, 0),
                          datetime.datetime(2020, 3, 7, 0, 0),
                          datetime.datetime(2020, 3, 8, 0, 0),
                          datetime.datetime(2020, 3, 9, 0, 0),
                          datetime.datetime(2020, 3, 10, 0, 0),
                          datetime.datetime(2020, 3, 11, 0, 0),
                          datetime.datetime(2020, 3, 12, 0, 0),
                          datetime.datetime(2020, 3, 13, 0, 0),
                          datetime.datetime(2020, 3, 14, 0, 0),
                          datetime.datetime(2020, 3, 15, 0, 0),
                          datetime.datetime(2020, 3, 16, 0, 0),
                          datetime.datetime(2020, 3, 17, 0, 0),
                          datetime.datetime(2020, 3, 18, 0, 0),
                          datetime.datetime(2020, 3, 19, 0, 0),
                          datetime.datetime(2020, 3, 20, 0, 0),
                          datetime.datetime(2020, 3, 21, 0, 0),
                          datetime.datetime(2020, 3, 22, 0, 0),
                          datetime.datetime(2020, 3, 23, 0, 0),
                          datetime.datetime(2020, 3, 24, 0, 0),
                          datetime.datetime(2020, 3, 25, 0, 0),
                          datetime.datetime(2020, 3, 26, 0, 0),
                          datetime.datetime(2020, 3, 27, 0, 0),
                          datetime.datetime(2020, 3, 28, 0, 0),
                          datetime.datetime(2020, 3, 29, 0, 0),
                          datetime.datetime(2020, 3, 30, 0, 0),
                          datetime.datetime(2020, 3, 31, 0, 0),
                          datetime.datetime(2020, 4, 1, 0, 0),
                          datetime.datetime(2020, 4, 2, 0, 0),
                          datetime.datetime(2020, 4, 3, 0, 0),
                          datetime.datetime(2020, 4, 4, 0, 0),
                          datetime.datetime(2020, 4, 5, 0, 0),
                          datetime.datetime(2020, 4, 6, 0, 0),
                          datetime.datetime(2020, 4, 7, 0, 0),
                          datetime.datetime(2020, 4, 8, 0, 0),
                          datetime.datetime(2020, 4, 9, 0, 0),
                          datetime.datetime(2020, 4, 10, 0, 0),
                          datetime.datetime(2020, 4, 11, 0, 0),
                          datetime.datetime(2020, 4, 12, 0, 0),
                          datetime.datetime(2020, 4, 13, 0, 0),
                          datetime.datetime(2020, 4, 14, 0, 0),
                          datetime.datetime(2020, 4, 15, 0, 0),
                          datetime.datetime(2020, 4, 16, 0, 0),
                          datetime.datetime(2020, 4, 17, 0, 0),
                          datetime.datetime(2020, 4, 18, 0, 0),
                          datetime.datetime(2020, 4, 19, 0, 0),
                          datetime.datetime(2020, 4, 20, 0, 0),
                          datetime.datetime(2020, 4, 21, 0, 0),
                          datetime.datetime(2020, 4, 22, 0, 0),
                          datetime.datetime(2020, 4, 23, 0, 0)], dtype=object),
              'xaxis': 'x',
              'y': array([     27,      27,      27,      44,      44,      59,      59,      59,
                               59,      59,      59,      59,      59,      60,      60,      61,
                               61,      66,      83,     219,     239,     392,     534,     631,
                              897,    1350,    2023,    2820,    4587,    6067,    7823,    9826,
                            11946,   14554,   17372,   20615,   24512,   28253,   31430,   34869,
                            37488,   40470,   42970,   45003,   60154,   64322,   66882,   68910,
                            70977,   72873,   74649,   75102,   76085,   77170,   78178,   78648,
                            79441,   80304,   81396,   82660,   84498,   86321,   88363,   89927,
                            92176,   94386,   97354,  101207,  104882,  108737,  113161,  117786,
                           124622,  132659,  142328,  153971,  166686,  179378,  194132,  212445,
                           241672,  270410,  304529,  337527,  377261,  416175,  467391,  527133,
                           591098,  656173,  714706,  776422,  850903,  927797, 1005370, 1087125,
                          1173454, 1244901, 1316286, 1391185, 1476092, 1563121, 1652463, 1734168,
                          1806558, 1872941, 1948165, 2029177, 2113513, 2196824, 2280936, 2355082,
                          2432356, 2519743, 2587372], dtype=int64),
              'yaxis': 'y'},
             {'alignmentgroup': 'True',
              'hovertemplate': 'date=%{x}<br>total_deaths=%{y}<extra></extra>',
              'legendgroup': '',
              'marker': {'color': '#ff2e63'},
              'name': '',
              'offsetgroup': '',
              'orientation': 'v',
              'showlegend': False,
              'textposition': 'auto',
              'type': 'bar',
              'x': array([datetime.datetime(2019, 12, 31, 0, 0),
                          datetime.datetime(2020, 1, 1, 0, 0),
                          datetime.datetime(2020, 1, 2, 0, 0),
                          datetime.datetime(2020, 1, 3, 0, 0),
                          datetime.datetime(2020, 1, 4, 0, 0),
                          datetime.datetime(2020, 1, 5, 0, 0),
                          datetime.datetime(2020, 1, 6, 0, 0),
                          datetime.datetime(2020, 1, 7, 0, 0),
                          datetime.datetime(2020, 1, 8, 0, 0),
                          datetime.datetime(2020, 1, 9, 0, 0),
                          datetime.datetime(2020, 1, 10, 0, 0),
                          datetime.datetime(2020, 1, 11, 0, 0),
                          datetime.datetime(2020, 1, 12, 0, 0),
                          datetime.datetime(2020, 1, 13, 0, 0),
                          datetime.datetime(2020, 1, 14, 0, 0),
                          datetime.datetime(2020, 1, 15, 0, 0),
                          datetime.datetime(2020, 1, 16, 0, 0),
                          datetime.datetime(2020, 1, 17, 0, 0),
                          datetime.datetime(2020, 1, 18, 0, 0),
                          datetime.datetime(2020, 1, 19, 0, 0),
                          datetime.datetime(2020, 1, 20, 0, 0),
                          datetime.datetime(2020, 1, 21, 0, 0),
                          datetime.datetime(2020, 1, 22, 0, 0),
                          datetime.datetime(2020, 1, 23, 0, 0),
                          datetime.datetime(2020, 1, 24, 0, 0),
                          datetime.datetime(2020, 1, 25, 0, 0),
                          datetime.datetime(2020, 1, 26, 0, 0),
                          datetime.datetime(2020, 1, 27, 0, 0),
                          datetime.datetime(2020, 1, 28, 0, 0),
                          datetime.datetime(2020, 1, 29, 0, 0),
                          datetime.datetime(2020, 1, 30, 0, 0),
                          datetime.datetime(2020, 1, 31, 0, 0),
                          datetime.datetime(2020, 2, 1, 0, 0),
                          datetime.datetime(2020, 2, 2, 0, 0),
                          datetime.datetime(2020, 2, 3, 0, 0),
                          datetime.datetime(2020, 2, 4, 0, 0),
                          datetime.datetime(2020, 2, 5, 0, 0),
                          datetime.datetime(2020, 2, 6, 0, 0),
                          datetime.datetime(2020, 2, 7, 0, 0),
                          datetime.datetime(2020, 2, 8, 0, 0),
                          datetime.datetime(2020, 2, 9, 0, 0),
                          datetime.datetime(2020, 2, 10, 0, 0),
                          datetime.datetime(2020, 2, 11, 0, 0),
                          datetime.datetime(2020, 2, 12, 0, 0),
                          datetime.datetime(2020, 2, 13, 0, 0),
                          datetime.datetime(2020, 2, 14, 0, 0),
                          datetime.datetime(2020, 2, 15, 0, 0),
                          datetime.datetime(2020, 2, 16, 0, 0),
                          datetime.datetime(2020, 2, 17, 0, 0),
                          datetime.datetime(2020, 2, 18, 0, 0),
                          datetime.datetime(2020, 2, 19, 0, 0),
                          datetime.datetime(2020, 2, 20, 0, 0),
                          datetime.datetime(2020, 2, 21, 0, 0),
                          datetime.datetime(2020, 2, 22, 0, 0),
                          datetime.datetime(2020, 2, 23, 0, 0),
                          datetime.datetime(2020, 2, 24, 0, 0),
                          datetime.datetime(2020, 2, 25, 0, 0),
                          datetime.datetime(2020, 2, 26, 0, 0),
                          datetime.datetime(2020, 2, 27, 0, 0),
                          datetime.datetime(2020, 2, 28, 0, 0),
                          datetime.datetime(2020, 2, 29, 0, 0),
                          datetime.datetime(2020, 3, 1, 0, 0),
                          datetime.datetime(2020, 3, 2, 0, 0),
                          datetime.datetime(2020, 3, 3, 0, 0),
                          datetime.datetime(2020, 3, 4, 0, 0),
                          datetime.datetime(2020, 3, 5, 0, 0),
                          datetime.datetime(2020, 3, 6, 0, 0),
                          datetime.datetime(2020, 3, 7, 0, 0),
                          datetime.datetime(2020, 3, 8, 0, 0),
                          datetime.datetime(2020, 3, 9, 0, 0),
                          datetime.datetime(2020, 3, 10, 0, 0),
                          datetime.datetime(2020, 3, 11, 0, 0),
                          datetime.datetime(2020, 3, 12, 0, 0),
                          datetime.datetime(2020, 3, 13, 0, 0),
                          datetime.datetime(2020, 3, 14, 0, 0),
                          datetime.datetime(2020, 3, 15, 0, 0),
                          datetime.datetime(2020, 3, 16, 0, 0),
                          datetime.datetime(2020, 3, 17, 0, 0),
                          datetime.datetime(2020, 3, 18, 0, 0),
                          datetime.datetime(2020, 3, 19, 0, 0),
                          datetime.datetime(2020, 3, 20, 0, 0),
                          datetime.datetime(2020, 3, 21, 0, 0),
                          datetime.datetime(2020, 3, 22, 0, 0),
                          datetime.datetime(2020, 3, 23, 0, 0),
                          datetime.datetime(2020, 3, 24, 0, 0),
                          datetime.datetime(2020, 3, 25, 0, 0),
                          datetime.datetime(2020, 3, 26, 0, 0),
                          datetime.datetime(2020, 3, 27, 0, 0),
                          datetime.datetime(2020, 3, 28, 0, 0),
                          datetime.datetime(2020, 3, 29, 0, 0),
                          datetime.datetime(2020, 3, 30, 0, 0),
                          datetime.datetime(2020, 3, 31, 0, 0),
                          datetime.datetime(2020, 4, 1, 0, 0),
                          datetime.datetime(2020, 4, 2, 0, 0),
                          datetime.datetime(2020, 4, 3, 0, 0),
                          datetime.datetime(2020, 4, 4, 0, 0),
                          datetime.datetime(2020, 4, 5, 0, 0),
                          datetime.datetime(2020, 4, 6, 0, 0),
                          datetime.datetime(2020, 4, 7, 0, 0),
                          datetime.datetime(2020, 4, 8, 0, 0),
                          datetime.datetime(2020, 4, 9, 0, 0),
                          datetime.datetime(2020, 4, 10, 0, 0),
                          datetime.datetime(2020, 4, 11, 0, 0),
                          datetime.datetime(2020, 4, 12, 0, 0),
                          datetime.datetime(2020, 4, 13, 0, 0),
                          datetime.datetime(2020, 4, 14, 0, 0),
                          datetime.datetime(2020, 4, 15, 0, 0),
                          datetime.datetime(2020, 4, 16, 0, 0),
                          datetime.datetime(2020, 4, 17, 0, 0),
                          datetime.datetime(2020, 4, 18, 0, 0),
                          datetime.datetime(2020, 4, 19, 0, 0),
                          datetime.datetime(2020, 4, 20, 0, 0),
                          datetime.datetime(2020, 4, 21, 0, 0),
                          datetime.datetime(2020, 4, 22, 0, 0),
                          datetime.datetime(2020, 4, 23, 0, 0)], dtype=object),
              'xaxis': 'x2',
              'y': array([     0,      0,      0,      0,      0,      0,      0,      0,      0,
                               0,      0,      1,      1,      1,      1,      2,      2,      2,
                               2,      3,      3,      6,     17,     17,     26,     41,     56,
                              81,    106,    132,    170,    213,    259,    305,    362,    427,
                             493,    565,    638,    724,    813,    910,   1018,   1115,   1370,
                            1383,   1527,   1669,   1775,   1873,   2012,   2126,   2245,   2357,
                            2461,   2616,   2695,   2758,   2796,   2853,   2915,   2973,   3040,
                            3109,   3194,   3274,   3377,   3480,   3578,   3807,   4007,   4285,
                            4610,   4960,   5397,   5752,   6499,   7095,   7884,   8835,   9876,
                           11242,  12942,  14596,  16356,  18558,  20986,  23667,  26986,  30445,
                           33569,  37268,  41897,  46877,  51570,  58173,  64265,  68921,  74058,
                           81469,  87809,  95032, 102081, 108185, 113506, 118850, 125968, 136313,
                          144820, 153083, 159504, 164649, 169844, 176779, 182801], dtype=int64),
              'yaxis': 'y2'}],
    'layout': {'annotations': [{'font': {'size': 16},
                                'showarrow': False,
                                'text': 'Confirmed cases',
                                'x': 0.225,
                                'xanchor': 'center',
                                'xref': 'paper',
                                'y': 1.0,
                                'yanchor': 'bottom',
                                'yref': 'paper'},
                               {'font': {'size': 16},
                                'showarrow': False,
                                'text': 'Deaths reported',
                                'x': 0.775,
                                'xanchor': 'center',
                                'xref': 'paper',
                                'y': 1.0,
                                'yanchor': 'bottom',
                                'yref': 'paper'}],
               'template': '...',
               'xaxis': {'anchor': 'y', 'domain': [0.0, 0.45]},
               'xaxis2': {'anchor': 'y2', 'domain': [0.55, 1.0]},
               'yaxis': {'anchor': 'x', 'domain': [0.0, 1.0]},
               'yaxis2': {'anchor': 'x2', 'domain': [0.0, 1.0]}}
})>
In [16]:
fig_1 = px.line(day_wise, x="date", y='total_deaths / total_cases', color_discrete_sequence = [dth])
    
fig = make_subplots(rows=1, cols=1, shared_xaxes=False, 
                    subplot_titles=('치사율'))

fig.add_trace(fig_1['data'][0], row=1, col=1)

fig.update_layout(height=480)
fig.show()
In [17]:
fig_c = px.bar(day_wise, x="date", y="new_cases", color_discrete_sequence = [act])

fig = make_subplots(rows=1, cols=1, shared_xaxes=False, horizontal_spacing=0.5,
                    subplot_titles=("No. of new cases everyday"))

fig.add_trace(fig_c['data'][0], row=1, col=1)

fig.update_layout(height=480)
fig.show()
In [18]:
country_wise = df[df['date']==max(df['date'])].reset_index(drop=True).drop('date', axis=1)

country_wise = country_wise.groupby('location')['total_cases','total_deaths','new_cases'].sum().reset_index()

country_wise.head(100)
Out[18]:
location total_cases total_deaths new_cases
0 Afghanistan 1176 40 84
1 Albania 634 27 25
2 Algeria 2910 402 99
3 Andorra 723 37 6
4 Angola 24 2 0
... ... ... ... ...
95 Italy 187327 25085 3370
96 Jamaica 252 6 19
97 Japan 11772 287 276
98 Jersey 255 18 0
99 Jordan 428 7 3

100 rows × 4 columns

In [19]:
country_wise.shape
Out[19]:
(205, 4)

나라별 총확진자 총사망자

In [20]:
fig_c = px.bar(country_wise.sort_values('total_cases').tail(30), x="total_cases", y="location", 
               text='total_cases', orientation='h', color_discrete_sequence = [act])
fig_d = px.bar(country_wise.sort_values('total_deaths').tail(30), x="total_deaths", y="location", 
               text='total_deaths', orientation='h', color_discrete_sequence = [dth])

fig = make_subplots(rows=1, cols=2, shared_xaxes=False, horizontal_spacing=0.14, vertical_spacing=0.08,
                    subplot_titles=('total_cases', 'total_deaths'))
fig.add_trace(fig_c['data'][0], row=1, col=1)
fig.add_trace(fig_d['data'][0], row=1, col=2)

나라별 새로운확진자

In [21]:
fig_c = px.bar(country_wise.sort_values('new_cases').tail(15), x="new_cases", y="location", 
               text='new_cases', orientation='h', color_discrete_sequence = [act])

fig = make_subplots(rows=1, cols=1, shared_xaxes=False, horizontal_spacing=0.14, vertical_spacing=0.08,
                    subplot_titles=('new_cases'))
fig.add_trace(fig_c['data'][0], row=1, col=1)

날짜별 전세계 전체확진자수,전체사망자수,새로운확진자수 보여주기

In [22]:
fig = px.bar(df, x="date", y="total_cases", color='location', height=800,
             title='total_cases', color_discrete_sequence = px.colors.cyclical.mygbm)
fig.show()
In [23]:
fig = px.bar(df, x="date", y="total_deaths", color='location', height=800,
             title='total_deaths', color_discrete_sequence = px.colors.cyclical.mygbm)
fig.show()
In [24]:
fig = px.bar(df, x="date", y="new_cases", color='location', height=800,
             title='new_cases', color_discrete_sequence = px.colors.cyclical.mygbm)
fig.show()
In [25]:
full_grouped = df.groupby(['date', 'location'])['total_cases','total_deaths'].sum().reset_index()

# new cases ======================================================
temp = full_grouped.groupby(['location', 'date', ])['total_cases', 'total_deaths']
temp = temp.sum().diff().reset_index()
temp.head()
mask = temp['location'] != temp['location'].shift(1)

temp.loc[mask, 'total_cases'] = np.nan
temp.loc[mask, 'total_deaths'] = np.nan


# # renaming columns
temp.columns = ['location', 'date', 'new_cases', 'new_deaths']
# =================================================================

# # merging new values
full_grouped = pd.merge(full_grouped, temp, on=['location', 'date'])

# # filling na with 0
full_grouped = full_grouped.fillna(0)

# # fixing data types
cols = ['new_cases', 'new_deaths']
full_grouped[cols] = full_grouped[cols].astype('int')

full_grouped['new_cases'] = full_grouped['new_cases'].apply(lambda x: 0 if x<0 else x)

full_grouped.head()
Out[25]:
date location total_cases total_deaths new_cases new_deaths
0 2019-12-31 Afghanistan 0 0 0 0
1 2019-12-31 Algeria 0 0 0 0
2 2019-12-31 Armenia 0 0 0 0
3 2019-12-31 Australia 0 0 0 0
4 2019-12-31 Austria 0 0 0 0

요일별 전세계 새로운 확진자수 시각화

In [29]:
temp = full_grouped[full_grouped['new_cases']>0].sort_values('location', ascending=False)
fig = px.scatter(temp, x='date', y='location', size='new_cases', color='new_cases', height=3000, 
           color_continuous_scale=px.colors.sequential.Viridis)
fig.update_layout(yaxis = dict(dtick = 1))
fig.update(layout_coloraxis_showscale=False)
fig.show()
In [33]:
fig_c = px.choropleth(country_wise, locations="location", locationmode='country names', 
                      color=np.log(country_wise["total_cases"]), hover_name="location", hover_data=['total_cases'])

# Deaths
temp = country_wise[country_wise['total_deaths']>0]
fig_d = px.choropleth(temp, locations="location", locationmode='country names',
                      color=np.log(temp["total_deaths"]), hover_name="location", hover_data=['total_deaths'])

# Plot
fig = make_subplots(rows=1, cols=2, subplot_titles = ['total_cases', 'total_deaths'],
                    specs=[[{"type": "choropleth"}, {"type": "choropleth"}]])

fig.add_trace(fig_c['data'][0], row=1, col=1)
fig.add_trace(fig_d['data'][0], row=1, col=2)

fig.update(layout_coloraxis_showscale=False)

fig.show()
In [34]:
fig = px.choropleth(full_grouped, locations="location", locationmode='country names', color=np.log(full_grouped["total_cases"]), 
                    hover_name="location", animation_frame=full_grouped["date"].dt.strftime('%Y-%m-%d'),
                    title='Cases over time', color_continuous_scale=px.colors.sequential.Magenta)
fig.update(layout_coloraxis_showscale=False)
fig.show()
In [ ]: